package com.imooc.coupon.converter;

import com.imooc.coupon.constant.CouponCategory;

import javax.persistence.AttributeConverter;
import javax.persistence.Converter;

/**
 * <h1>优惠卷分类枚举属性转换器</h1>
 * AttributeConverter<X,Y>
 *     X:实体属性类型
 *     Y:数据库字段类型
 * @Author: crowsjian
 * @Date: 2020/6/2 22:25
 */
@Converter
public class CouponCategoryConverter implements AttributeConverter<CouponCategory,String> {
    /**
     * <h2>将实体属性X转换为Y存储到数据库中，插入和更新执行的动作</h2>
     * @param attribute
     * @return
     */
    @Override
    public String convertToDatabaseColumn(CouponCategory attribute) {
        return attribute.getCode();
    }

    /**
     * <h1>将数据库的字段Y转换为实体属性X,查询操作时执行的动作</h1>
     * @param code
     * @return
     */
    @Override
    public CouponCategory convertToEntityAttribute(String code) {
        return CouponCategory.of(code);
    }
}
